package com.sinog.biz.service.api.async;

import com.sinog.biz.util.FtpUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.net.ftp.FTPClient;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;

/**
 * @desc 异步上传文件到ftp
 * @author lzq
 * @date 2020-09-25 2:57 下午
 */
@Component
@Slf4j
public class AsyncUploadFileToFtp {

    /**
     * 异步上传文件到ftp服务器
     * @param datapath FTP服务器主目录的相对目录	格式如：\aaa
     * @param filePath 要上传文件的全路径	格式如：D:\bbb.zip
     */
    @Async
    public void uploadFileToFtp(String datapath,String filePath) {
        log.info(">>>>>>>>>>异步上传文件到ftp开始<<<<<<<<<<");
        FTPClient ftp = null;
        try {
            ftp = FtpUtil.getFtpClient();
            log.info("FTP服务器主目录的相对目录：{}",datapath);
            log.info("要上传文件的全路径：{}",filePath);
            FtpUtil.uploadFile(ftp,datapath,filePath);
            log.info(">>>>>>>>>>异步上传文件到ftp结束<<<<<<<<<<");
        } catch(RuntimeException e) {
            log.error("发生异常:",e);
        } finally {
            FtpUtil.closeFtpClient(ftp);
        }
    }
}